package edu.ustb.efws.base.mapper;

import edu.ustb.efws.base.domain.Reason;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 原因数据操作
 *
 * @author TS Group
 */
@Mapper
public interface ReasonMapper {

    /**
     * 新增原因
     *
     * @param t {@link Reason}
     * @return 新增条数
     */
    int insert(Reason t);

    /**
     * 修改原因
     *
     * @param t {@link Reason}
     * @return 修改条数
     */
    int update(Reason t);

    /**
     * 删除条数
     *
     * @param id 编号
     * @return 删除条数
     */
    int delete(@Param("id") int id);

    /**
     * 获取原因
     *
     * @param id 编号
     * @return {@link Reason}
     */
    Reason findOne(@Param("id")int id);

    /**
     * 根据风险类别和分数查询风险原因
     *
     * @param riskType 风险类型
     * @param score 分数
     * @return 风险原因集合
     */
    List<Reason> findRisk(@Param("riskType") int riskType, @Param("score") float score);

    /**
     * 查询记录数
     *
     * @param type 类型
     * @param caseId 情形id
     * @param caseInfo 情形描述
     * @return 记录数
     */
    Long count(Integer type, Integer caseId, String caseInfo);

    /**
     * 查询记录
     *
     * @param type 类型
     * @param caseId 情形id
     * @param caseInfo 情形描述
     * @param offset 开始位置
     * @param limit 查询记录数
     * @return 记录
     */
    List<Reason> find(Integer type, Integer caseId, String caseInfo, int offset, int limit);
}
